The present invention relates generally to industrial control systems and, more particularly, to a system and method for automatically updating data of devices within an industrial control system. Using the invention, an industrial control system may be efficiently cloned or a given industrial control system may automatically maintain desired firmware versions and programmable data on devices distributed across the industrial control system.
Industrial control systems are used in a variety of automation applications, such as manufacturing and materials handling. Referring to FIG. 1, an industrial control system 1 includes an industrial controller 2 in communication with a plurality of I/O modules 3 through a backplane 4. The industrial controller 2 is also in communication with a plurality of additional devices that may include network storage devices 5, an overload relay 6, a network expander 7, and an interface 8 for integrating additional components, such as a third-party scale 9. To facilitate communication with these components 5, 6, 7, 8, 9, the industrial control system 1 includes one or more network controllers 10, such as Ethernet controllers, DeviceNet controllers, ControlNet controllers, FireWire controllers, or FieldBus controllers that allow communication over one or more communication lines 11. Therefore, the industrial controller 2 can control a variety of devices, generally designated 12, that may include I/O modules 3 and additional components 5, 6, 7, 8, 9. The industrial controller 2, network controllers 10, and devices 12 are powered by respective power supplies 13.
Referring now to FIG. 2, the industrial control system 1 includes a variety of software. In general, the industrial controller 2 includes an operating system 14 that controls the operation of the industrial controller 2, operational programs 15 that are executed by the industrial controller 2 to operate the industrial control system 1, configuration data 16 that forms a record of user-selected preferences, and a device list 17 that serves as a map of devices, device types, and locations of all devices within the industrial control system 1. As will be described, the industrial controller 2 relies upon each piece of software 14, 15, 16, 17 to generate commands that are communicated to each of the devices within the industrial control system 1 to control operation of the industrial control system 1. In this regard, each device 12 includes firmware 18 and configuration data 19 that, as will be described, allows the device 12 to execute the commands received from the industrial controller 2 in the manner desired.
When the industrial controller 2 executes the operational program 15, the operating system 14 and configuration data 16 are used to generate commands that are communicated to the devices 12 using the device list 17. When received by a particular device 12, the device 12 uses the firmware 18 and the configuration data 19 to interpret and carryout the instructions contained in the commands. In this regard, the firmware 18 and the configuration data 19 controls how the device 12 interprets the commands and translates those commands into actions taken by device 12.
Referring now to FIG. 3, the firmware 18 and configuration data 19 form one of the three fundamental characteristics of an industrial control system. In particular, the firmware 18 and configuration data 19 form individual programmable data 20 or data that is specific to a particular device. The individual programmable data 20 is distinguishable from software programs 21, such as operational programs 15 used by the industrial controller, that form the second characteristic of an industrial control system. As will be described, in traditional industrial control system, the operating system 14 of the industrial controller is generally treated similarly to the operational programs 15, as are configuration data 16 and other software information stored locally in the industrial controller. Accordingly, these software components are all associated with software programs 21.
The individual programmable data 20 is also distinguishable from the third characteristic of industrial control systems, hardware information 22. The hardware information 22 may include information such as industrial controller type, individual module types, backplane type, communication network types, and the like. This information is used by the industrial controller to identify components in the industrial control system and communicate commands accordingly. In particular, this information generally forms the information stored as the device list 17 of FIG. 2
Referring now to FIGS. 1 through 3, it has been recognized that in order for an industrial control system to operate properly, the specifics of the hardware information 22, software programs 21, and individual programmable data 20 must work together. Accordingly, when building, changing, or updating the devices 12 of the industrial control system 1, a programmer uses a computer 23 having a direct communications link 24 to the industrial controller 1 or, alternatively, a remote communications link 25 through a remote-access modem 26 to the industrial controller 1. Though this communications link 24/25, the user can configure the individual components of the industrial control system 1 to communicate and execute as desired. To do so, specialized software is executed on the computer 23 to communicate with the industrial controller 1 and the devices 12 of the industrial control system 1 and compile an accurate listing of the characteristics of each device 12 in the industrial control system 1 and how it is connected. That is, the programmer uses the computer 23 to identify the hardware information 22 and the individual programmable data. For example, programs such as RSLogix 5000, commercial available from Rockwell Automation, 1201 S. Second St., Milwaukee, Wis. 53204, may be utilized to perform these programming procedures.
Once the specific characteristics of each element of the industrial control system 1 is known, the programmer can then use the computer 23 and the specialized software to develop the software programs 21, for example the operational program 15, to operate the industrial control system 1. For example, by knowing the specific programmable data 20 and hardware information 22 of a given device 12, the programmer can compile the commands required to cause the device 12 to operate in the manner desired. That is, since the manner in which a given device 12 will interpret a command and the actions taken in response to such a command are dictated by the configuration data 18 and the firmware 19 of the device 12, the instructions should consider the particular characteristics of the device 12. Once the initial compilation of the operating program 15 has been completed, the programmer transfers it from the computer 23 to the industrial controller 2.
In an effort to backup and protect these highly specialized programs, some industrial controllers 2 include a port 28 configured to receive a removable storage medium 30, such as a compact flash card. The removable storage medium 30 may be inserted into the port 28 whereby the software programs 21 developed on the computer 23 and downloaded onto the industrial controller 2 can be automatically backed up onto the removable storage medium 30. Similarly, in some industrial controllers 2, the hardware information 22 stored on the industrial controller 2 may be backed up onto the removable storage medium 30. In this regard, some industrial controllers 2 are designed to backup all the information stored on the industrial controller onto the removable storage medium 30.
However, as industrial control systems 1 have evolved, they increasingly rely upon distributed intelligence. That is, much of the information processing and configuration data is not stored in the industrial controller 2 alone. Rather, a fair amount of the information traditionally stored in the industrial controller 2 has been distributed across the devices 12 of the industrial control system 1. As such, the individual programmable data 20 of each device 12 has gained added importance in governing the overall functionality of the industrial control system 1.
In this regard, it may be necessary to adjust the programmable data of a device 12, for example, changing firmware 19 or setting the configuration data 18, so that device 12 will properly respond to commands sent by the industrial controller 1. In this regard, the programmer can use the computer 23 and software, such as Firmware Supervisor, commercial available from Rockwell Automation, to reconfigure the programmable data of the device 12.
For example, if the device 12 is a scale 9, the configuration data 18 may be set to indicate an overweight condition at 1,500 pounds (lbs) and the firmware of the scale 9 may be configured to send an alarm to the industrial controller 2 whenever the scale 9 indicates an undesired weight. Accordingly, the operational program 15 may be designed to process and handle alerts from the scale 9 indicating an overweight condition indicating a weight in excess of 1,500 lbs. In this regard, should the configuration data 18 or firmware 19 later be changed, overweight alarms may be sent at different weights than expect by the industrial controller 2, which can cause the industrial control system 1 to function improperly. As such, prior art systems require configuration data 18 or firmware 19 to be matched to that expected by the industrial controller 2, else the industrial controller 2 will refuse to communicate with the device 12
As such, when a replacement device 12 is required, the programmer must identify the individual programmable data 20 of the original device 12 being replaced and, if not included in the replacement device 12, reconfigure the replacement device 12 to include that programmable data 20. This can be a particularly arduous process especially if the programmable data 20 was not previously stored elsewhere or if the necessary programmable data 20 is outdated and not widely available. Furthermore, this can be a particularly costly process due to the expense of a programmer as well as any down time caused by the module requiring replacement.
Therefore, it would be desirable to have a system and method for maintaining individual or localized programmable data of each module in an industrial control system.